<?php

namespace DesignNew\Command;

require('../vendor/autoload.php');
/**
 * 命令模式也可用于实现基于事务的系统。在执行命令时，需要持续保存命令的历史，
 * 如果最后一条命令成功执行，皆大欢喜，否则遍历历史记录，并对所有执行过的命执行撤销。
 * 
 */
class ComClient
{
    public function __construct()
    {
        $this->run();
    }

    public function run()
    {
       $bulb = new Bulb();
       $turnOn = new TurnOn($bulb); 
       $turnOff = new TurnOff($bulb); 

       $remote = new RemoteControl();
       $remote->submit($turnOn);
       $remote->submit($turnOff);
       
    }
}

$client = new ComClient();